import type { Token } from "@/types/data"
import type { LoginAction } from "@/types/store"
import { getToken } from "@/utils/auth"
// redux的子模块
const inititalState: Token = getToken()

// reducer 函数 根据输入的类型参数 返回特定结果
// 利用了类型的推导  action的位置应该是所有action的集合
export default function login(
  state = inititalState,
  action: LoginAction
): Token {
  // 做switch判断
  switch (action.type) {
    case "login/token":
      return action.payload // 返回最新的token状态
    case "login/logout":
      return { token: "", refresh_token: "" } // 返回token空对象
    default:
      return state
  }
}
